package org.dxy.infrastructure.persistent.po.query;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 物料视图实体（用于查询和展示）
 * @author dxy
 * @createTime 2025/9/7
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@TableName("material_view")
public class MaterialViewPo {
    
    /** 物料ID */
    @TableId(type = IdType.INPUT)
    private Long id;
    
    /** 物料编码，唯一标识物料 */
    private String materialCode;
    
    /** 物料名称 */
    private String materialName;
    
    /** 物料规格 */
    private String specification;
    
    /** 物料型号 */
    private String model;
    
    /** 计量单位 */
    private String unit;
    
    /** 物料群组ID */
    private Long groupId;
    
    /** 物料群组名称 */
    private String groupName;
    
    /** 标准成本 */
    private BigDecimal standardCost;
    
    /** 生命周期状态：ACTIVE（启用）、DISABLED（禁用）、DELETED（删除） */
    private String status;
    
    /** 物料描述 */
    private String description;
    
    /** 创建人 */
    @TableField(fill = FieldFill.INSERT)
    private String createdBy;
    
    /** 创建时间 */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createdTime;
    
    /** 更新人 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updatedBy;
    
    /** 更新时间 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedTime;
    
    /** 逻辑删除标识 0-未删除 1-已删除 */
    @TableLogic
    private Integer deleted;
}